package form;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.sql.Date;
import java.sql.SQLException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import dao.UserDAO;

import model.User;

/**
 * Servlet implementation class Xulythemthongtincanhan
 */
@WebServlet("/Xulythemthongtincanhan")
public class Xulythemthongtincanhan extends HttpServlet {
	private static final long serialVersionUID = 1L;
	private String ho = "", ten = "", sgioitinh = "", ngaysinh = "",
			diachi = "", tinhthanh = "", nghenghiep = "",
			stinhtranghonnhan = "";
	private String err_changeinfo = "", finish_changeinfo = "";
	private int gioitinh, tinhtranghonnhan;
	private Date sinhnhat;
	private boolean check, check_err = true;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public Xulythemthongtincanhan() {
		super();

	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		toDo(request, response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		toDo(request, response);
	}

	private void toDo(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		request.setCharacterEncoding("utf-8");
		HttpSession session = request.getSession();
		ho = request.getParameter("ho");
		ten = request.getParameter("ten");

		sgioitinh = request.getParameter("gioitinh");
		try {
			gioitinh = Integer.parseInt(sgioitinh);
		} catch (NumberFormatException e) {
			err_changeinfo = "Nhắc lại! Không để trống các trường chứa dấu *";
			request.setAttribute("err_changeinfo", err_changeinfo);
		}
		ngaysinh = request.getParameter("ngaysinh");
		try {
			sinhnhat = Date.valueOf(ngaysinh);
		} catch (IllegalArgumentException e) {
			err_changeinfo = "Nhắc lại! Không để trống các trường chứa dấu *";
			request.setAttribute("err_changeinfo", err_changeinfo);
		}
		diachi = request.getParameter("diachi");
		tinhthanh = request.getParameter("tinhthanh");
		nghenghiep = request.getParameter("nghenghiep");
		stinhtranghonnhan = request.getParameter("tinhtranghonnhan");
		try {
			tinhtranghonnhan = Integer.parseInt(stinhtranghonnhan);
		} catch (NumberFormatException e) {
			err_changeinfo = "Nhắc lại! Không để trống các trường chứa dấu *";
			request.setAttribute("err_changeinfo", err_changeinfo);
		}
		User tmp = (User) session.getAttribute("user");
		tmp.setHo(ho);
		tmp.setTen(ten);

		tmp.setGioitinh(gioitinh);

		tmp.setSinhnhat(sinhnhat);
		tmp.setDiachi(diachi);
		tmp.setTinhthanh(tinhthanh);
		tmp.setNghenghiep(nghenghiep);
		tmp.setTinhtranghonnhan(tinhtranghonnhan);

		if (ho == "" && ten == "" && sgioitinh == "" && ngaysinh == ""
				&& diachi == "" && tinhthanh == "" && nghenghiep == ""
				&& stinhtranghonnhan == "") {
			err_changeinfo = "Nhắc lại! Không để trống các trường chứa dấu *";
			request.setAttribute("err_changeinfo", err_changeinfo);
		}
		if (err_changeinfo.length() == 0) {
			check_err = false;
		}
		if (check_err == true) {
			RequestDispatcher rd = request.getServletContext()
					.getRequestDispatcher("/trangcanhan_thongtinchung.jsp");
			rd.forward(request, response);

		}
		try {
			check = UserDAO.updateInfomation(tmp);
			if (check == true && check_err == false) {

				finish_changeinfo = "Cập nhật thông tin thành công";
				request.setAttribute("finish_changeinfo", finish_changeinfo);
				RequestDispatcher rd = request.getServletContext()
						.getRequestDispatcher("/trangcanhan_thongtinchung.jsp");
				rd.forward(request, response);

			}
		} catch (ClassNotFoundException | SQLException e) {
			String err = "Hệ thống đã bị lỗi! Chúng tôi sẽ nhanh chóng khắc phục";
			request.setAttribute("err", err);
			response.sendRedirect("dangnhap.jsp");
		}
	}

}
